############################################################## 
## MOD Title:		Save posts as drafts (upgrade from 1.0.13 to 1.0.14)
## MOD Author:		asinshesq < N/A > (Alan) N/A
## MOD Description:	Allow users to save their posts as drafts so they can begin a post and finish it later.
##			Since it is a draft, others will not see it until it is done.
##
## MOD Version:		upgrade from 1.0.13 to 1.0.14
## 
## Installation Level:	Easy
## Installation Time:	5 Minutes ( 1 minute with easymod) 
## Files To Edit:
##			posting.php
##			search.php
##			includes/functions_post.php
##			includes/functions_admin.php
##			templates/subSilver/search_results_topics.tpl
##
## Included Files:	N/A
##
## License:		http://opensource.org/licenses/gpl-license.php GNU General Public License v2
##
############################################################## 
## For security purposes, please check: http://www.phpbb.com/mods/
## for the latest version of this MOD. Although MODs are checked
## before being allowed in the MODs Database there is no guarantee
## that there are no security problems within the MOD. No support
## will be given for MODs not found within the MODs Database which
## can be found at http://www.phpbb.com/mods/
############################################################## 
## Author Notes:	This is an upgrade mod.  You must already have version 1.0.13 installed in order to use this mod.
##
############################################################## 
## MOD History:
##
##   2004-09-18	- Version 1.0.14
##		  corrected small error in search.php that allowed it to count a draft as a new post when you click the new posts link on the index page;
##		  also corrected problem in functions_admin.php that counted drafts as posts when it tries to sync a forum or topic (e.g. when you hit 'resync' in the forum management part of the ACP);
##		  and modified things so that a user who isn't generally authorized to delete his own posts can now delete his own drafts
##
##   2004-09-05	- Version 1.0.13
##		  no change in functionality...just changed method of inserting draft as a new post when you finally submit a draft (since method used in version 1.0.11 had some unnecessary steps in it); 
##
##   2004-09-02	- Version 1.0.12
##		  broke up large find and replace blocks in mod to smaller bits as needed to get validation...no change in the coding from version 1.1.11; 
##
##   2004-08-29	- Version 1.0.11
##		  changed mod so that it in effect creates a brand new post (with a new post_id and, if the post is a new topic, a brand new topic_id) when a draft finally gets submitted;
##		  the old draft post (and topic if the draft is a new topic) get deleted when the new one is created;
##		  since post_id now will always fall in same order as post_time, got rid of the changes that had been in prior drafts to places where sorts were done by post_id;
##		  as a result, the order of post_id of all final posts is now the same as the order of post_time of all final posts (not critical but nice);
##		  also fixed a minor error where a BEGIN_TRANSACTION statement did not have a corresponding END_TRANSACTION statement when the user saved the post as a draft (which
##		  could have slowed up the board a bit when a user saves a draft)
##
##   2004-08-22	- Version 1.0.10
##		  tweaked the mod so that post_id and topic_id get updated at the time the draft is finally submitted as real (so that there are never any 'sort' bugs)
##
##   2004-08-20	- Version 1.0.9
##		  corrected the fix in 1.0.8
##
##   2004-08-20	- Version 1.0.8
##		  fixed an error that prevented any regular users who are not moderators from deleting their own drafts
##
##   2004-08-6	- Version 1.0.7
##		  fixed aditional errors in viewtopic that could have caused wrong displays when user hits newest or previous or next in a topic where there are unsubmitted drafts
##
##   2004-08-5	- Version 1.0.6
##		  fixed an error in viewtopic that caused wrong pagination on occassion when there were umsubmitted drafts in a topic
##
##   2004-07-24	- Version 1.0.5
##		  fixed a number of minor bugs and cleaned up code
##
##   2004-07-23	- Version 1.0.4
##		  fixed privmsg.php so that submit and preview buttons show up on pm posts
##
##   2004-07-23	- Version 1.0.3
##		  fixed minor problem where reply notifications didn't go out and post didn't get marked as new when you finally submit draft as a live post
##
##   2004-07-23	- Version 1.0.2
##		  fixed minor problem where board stats didn't get updated after you finally submit a draft as a live post
##
##   2004-07-18	- Version 1.0.1
##		  first release
##
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
posting.php

#
#-----[ FIND ]------------------------------------------------
#
if ( !$is_auth[$is_auth_type] )

#
#-----[ REPLACE WITH ]------------------------------------------------
#
if ( !$is_auth[$is_auth_type] && !$was_a_draft )

#
#-----[ FIND ]------------------------------------------------
#
// start mod save posts as drafts (and end mod too)...added was a post stuff at end of preceding line to make sure that regular users who are not mods can always delete their own drafts

#
#-----[ REPLACE WITH ]------------------------------------------------
#
// start mod save posts as drafts (and end mod too)...added was a draft stuff at end of preceding line to make sure that regular users who are not mods can always delete their own drafts

#
#-----[ OPEN ]------------------------------------------------
# 
search.php

#
#-----[ FIND ]------------------------------------------------
#
						WHERE post_time >= " . $userdata['user_lastvisit'];

#
#-----[ REPLACE WITH ]------------------------------------------------
#
						WHERE post_time >= " . $userdata['user_lastvisit'] . " AND post_draft = 0";

#
#-----[ OPEN ]------------------------------------------------
#
includes/functions_post.php

#
#-----[ FIND ]------------------------------------------
#
// in the below added code, we delete the old post from the posts table if the post was a draft getting finally submitted as a real post; and we also in that case save the $relevant_post_id for purposes of fidning the text in the topic table and then reset $post_id to match the new $post_id of the new post inserted above

#
#-----[ BEFORE, ADD ]------------------------------------------
#
// start mod save posts as drafts

#
#-----[ OPEN ]------------------------------------------------
#
includes/functions_admin.php

#
#-----[ FIND ]------------------------------------------------
#
				FROM " . TOPICS_TABLE;

#
#-----[ REPLACE WITH ]---------------------------------------- 
#
				FROM " . TOPICS_TABLE . "
				WHERE topic_last_post_id > 0";
// start mod save posts as drafts (and end too)...added constraint that topic_last_post_id be greater than 0 so that this function doesn't try to erroneously sync a topic that is only a draft

#
#-----[ FIND ]------------------------------------------------
#
				FROM " . POSTS_TABLE . "  
				WHERE forum_id = $id";

#
#-----[ REPLACE WITH ]---------------------------------------- 
#
				FROM " . POSTS_TABLE . "  
				WHERE forum_id = $id
				AND post_draft = 0";
// start mod save posts as drafts (and end too)...added constraint that post_draft be 0 so that this function doesn't count drafts as posts in a topic or forum

#
#-----[ FIND ]------------------------------------------------
#
				FROM " . TOPICS_TABLE . "
				WHERE forum_id = $id";

#
#-----[ REPLACE WITH ]---------------------------------------- 
#
				FROM " . TOPICS_TABLE . "
				WHERE forum_id = $id
				AND topic_last_post_id > 0";
// start mod save posts as drafts (and end too)...added constraint that topic_last_post_id be greater than 0 so that this function doesn't count draft topics as real topics in a forum

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/search_results_topics.tpl

#
#-----[ FIND ]------------------------------------------
#
</table>
<!-- BEGIN switch_show_drafts -->

#
#-----[ REPLACE WITH ]------------------------------------------
#
<!-- BEGIN switch_show_drafts -->
</table>

#
#-----[ SAVE/CLOSE ALL FILES ]--------------------------------
#
# EoM